
calcolaTtot:-
	api(API),
	findall(_,( member(A,API),
			tempoVisitaSitiArea(A,Tv),
			tx(A,Tx),
			Ttot is +(Tx,Tv),
			retractall(tTot(A,_)),
			assert(tTot(A,Ttot))
		     )
		  ,_).


/* Funzione che calcola il tempo totale di visita per un'area */
tempoVisitaSitiArea(A,T):-
      sitiInteresseIn(A,L),
      aggiungiComp(L,Lcomp),
	assert(insiemeSiti(Lcomp)),
      bagSum(tempoSitiInArea,T),
	retract(insiemeSiti(Lcomp)),
	[aggregs].


:-hilog tempoSitiInArea.

tempoSitiInArea(Tempo):-
	insiemeSiti(Siti),
	member(IdS,Siti),
	siti(IdS,_,TipoSito,_,_,_,_,_),
	preferenza(TipoSito,TipoUtente),
	tempiVisita(IdS,TipoUtente,Tempo).